package com.sob.bountyhunter;


import java.io.IOException;

import javax.xml.parsers.ParserConfigurationException;

import org.newdawn.slick.AppGameContainer;
import org.newdawn.slick.BasicGame;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.Input;
import org.newdawn.slick.SlickException;
import org.xml.sax.SAXException;

import com.sob.bountyhunter.entidades.Jugador;
import com.sob.bountyhunter.entidades.Mob;


public class BountyHunter extends BasicGame{
	
	public Mapa pruebaMapa;
	public Jugador pruebaJugador;
	public Mob pruebaMob;
	public Mob pruebaMob2;
	
	public BountyHunter() {
		super("Project BH");
	}

	public void init(GameContainer gameContainer) throws SlickException {
		gameContainer.setTargetFrameRate(60);
		try {
			Art.loadAnimation("res/anims/link");
		} catch (ParserConfigurationException | SAXException | IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//pruebaMapa=new Mapa(20, 15, "/res/tiles32.png");
		//pruebaJugador=new Jugador("/res/pj.png");
		//pruebaMob=new Mob("/res/pj.png");
		//pruebaMob2=new Mob("/res/pj.png");
		
		pruebaMapa=new Mapa("/res/mapa.tmx");
		pruebaJugador=new Jugador(); //"/res/anims/link.png",32,32,80);		
		pruebaMob=new Mob(); //"/res/anims/link.png",32,32,80);
		pruebaMob2=new Mob(); //"/res/anims/link.png",32,32,80);
				
		pruebaJugador.setAnimacion("Link Walk");
		pruebaMob.setAnimacion("Link Walk");
		pruebaMob2.setAnimacion("Link Walk");
		
		pruebaJugador.setPosTile(5 , 5);
		pruebaMob.setPosTile(15, 15);
		pruebaMob2.setPosTile(3, 15);
		
		pruebaMapa.addEntidad(pruebaJugador);
		pruebaMapa.addEntidad(pruebaMob);
		pruebaMapa.addEntidad(pruebaMob2);
	}

	public void render(GameContainer gameContainer, Graphics graphics) throws SlickException {
		pruebaMapa.render(0, 0);
		
		/*
		pruebaMapa.render(0, 0, 0);
		
		pruebaJugador.render(0, 0);
		pruebaMob.render(0, 0);
		
		pruebaMapa.render(0, 0, 1);
		*/
	}

	public void update(GameContainer gameContainer, int deltaTime) throws SlickException {
		Input input=gameContainer.getInput();
		if(input.isKeyDown(Input.KEY_ESCAPE)){
			gameContainer.exit();
		}
    	if(input.isKeyDown(Input.KEY_ENTER) && input.isKeyDown(Input.KEY_LCONTROL)){
    		if(gameContainer.isFullscreen()){
    			gameContainer.setFullscreen(false);
    		}else{
    			gameContainer.setFullscreen(true);
    		}
    	}
		pruebaMapa.update(gameContainer, deltaTime);
		//pruebaJugador.update(gameContainer, deltaTime, pruebaMapa);
		//pruebaMob.update(gameContainer, deltaTime, pruebaMapa);
}

    public static void main(String[] args) 
	throws SlickException
	{
	 AppGameContainer app = 
		new AppGameContainer(new BountyHunter());
	
	 app.setDisplayMode(800, 600, false);
	 app.start();
	}
}
